package templateMethod;

/**
 * @author 帅小伙
 * @date 2021/12/23
 * @description
 */
public abstract class Car {

    // 加上final比较合适  这样就可以不让子类对该类进行修改
    final public void work() {
        if(hook()){
            start();
            stop();
        }else{
            System.out.println("等一会ah");
            start();
            stop();
        }
        doMoreWork();
    }

    abstract public void start();

    abstract public void stop();

    // 钩子方法
    void doMoreWork() {};
    boolean hook(){return true;};

}
